//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Wed Dec 18 17:27:04 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[2], immediateIndexed
dcl_resource_buffer (uint,uint,uint,uint) t0
dcl_resource_buffer (uint,uint,uint,uint) t1
dcl_uav_typed_buffer (uint,uint,uint,uint) u0
dcl_uav_typed_buffer (uint,uint,uint,uint) u1
dcl_uav_typed_buffer (uint,uint,uint,uint) u2
dcl_input vThreadID.xyz
dcl_temps 2
dcl_thread_group 4, 4, 4
ult r0.xyz, vThreadID.xyzx, cb0[1].xyzx
and r0.x, r0.y, r0.x
and r0.x, r0.z, r0.x
if_nz r0.x
  imad r0.x, vThreadID.z, cb0[1].y, vThreadID.y
  imad r0.x, r0.x, cb0[1].x, vThreadID.x
  ld_indexable(buffer)(uint,uint,uint,uint) r0.y, r0.xxxx, t0.yxzw
  mov r0.z, l(0)
  mov r0.w, r0.y
  loop
    ine r1.x, r0.w, l(-1)
    ult r1.y, r0.z, cb0[0].x
    and r1.x, r1.y, r1.x
    breakc_z r1.x
    iadd r0.z, r0.z, l(1)
    bfi r1.x, l(31), l(1), r0.w, l(1)
    ld_indexable(buffer)(uint,uint,uint,uint) r0.w, r1.xxxx, t1.yzwx
  endloop
  imm_atomic_iadd r1.x, u2, l(0), r0.z
  ishl r0.w, r0.x, l(1)
  store_uav_typed u0.xyzw, r0.wwww, r0.zzzz
  bfi r1.y, l(31), l(1), r0.x, l(1)
  store_uav_typed u0.xyzw, r1.yyyy, r1.xxxx
  iadd r0.w, r0.z, r1.x
  mov r1.x, r0.y
  mov r1.y, l(0)
  loop
    ine r1.z, r1.x, l(-1)
    ult r1.w, r1.y, r0.z
    and r1.z, r1.w, r1.z
    breakc_z r1.z
    iadd r1.z, r0.w, -r1.y
    iadd r1.z, r1.z, l(-1)
    ishl r1.w, r1.x, l(1)
    ld_indexable(buffer)(uint,uint,uint,uint) r1.w, r1.wwww, t1.yzwx
    store_uav_typed u1.xyzw, r1.zzzz, r1.wwww
    iadd r1.y, r1.y, l(1)
    bfi r1.z, l(31), l(1), r1.x, l(1)
    ld_indexable(buffer)(uint,uint,uint,uint) r1.x, r1.zzzz, t1.xyzw
  endloop
  iadd r0.x, r0.x, cb0[0].w
  ld_indexable(buffer)(uint,uint,uint,uint) r0.y, r0.xxxx, t0.yxzw
  mov r0.z, l(0)
  mov r0.w, r0.y
  loop
    ine r1.x, r0.w, l(-1)
    ult r1.y, r0.z, cb0[0].y
    and r1.x, r1.y, r1.x
    breakc_z r1.x
    iadd r0.z, r0.z, l(1)
    bfi r1.x, l(31), l(1), r0.w, l(1)
    ld_indexable(buffer)(uint,uint,uint,uint) r0.w, r1.xxxx, t1.yzwx
  endloop
  imm_atomic_iadd r1.x, u2, l(0), r0.z
  ishl r0.w, r0.x, l(1)
  store_uav_typed u0.xyzw, r0.wwww, r0.zzzz
  bfi r0.x, l(31), l(1), r0.x, l(1)
  store_uav_typed u0.xyzw, r0.xxxx, r1.xxxx
  iadd r0.x, r0.z, r1.x
  mov r0.w, r0.y
  mov r1.x, l(0)
  loop
    ine r1.y, r0.w, l(-1)
    ult r1.z, r1.x, r0.z
    and r1.y, r1.z, r1.y
    breakc_z r1.y
    iadd r1.y, r0.x, -r1.x
    iadd r1.y, r1.y, l(-1)
    ishl r1.z, r0.w, l(1)
    ld_indexable(buffer)(uint,uint,uint,uint) r1.z, r1.zzzz, t1.yzxw
    store_uav_typed u1.xyzw, r1.yyyy, r1.zzzz
    iadd r1.x, r1.x, l(1)
    bfi r1.y, l(31), l(1), r0.w, l(1)
    ld_indexable(buffer)(uint,uint,uint,uint) r0.w, r1.yyyy, t1.yzwx
  endloop
endif
ret
// Approximately 0 instruction slots used
